home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’94 / [√] May be freely distributed / Gary J Kacmarcik / SchpiderWorks 0.90d / UserGuide < prev   
Text File  |  1994-10-14  |  5KB  |  119 lines

  1. /* SchpiderWorks User's Guide (sortof)
  2.  * Copyright 1993-94 Gary J Kacmarcik
  3.  * last updated: 12 JUL 94
  4.  
  5.  
  6. *******************
  7. About SchpiderWorks
  8. *******************
  9.  
  10. What is SchpiderWorks?
  11. ----------------------
  12.  
  13. SchpiderWorks is an integrated POWER/PowerPC code analysis toolkit which
  14. includes an assembler, a disassembler, and an emulator.  Most of 
  15. SchpiderWorks is still under development -- this document describes the
  16. portions of the program which are in late development or early alpha
  17. stages.
  18.  
  19. Schpiderworks requires System 7, but will run on either 68k and PowerPC
  20. Macintoshes.  It supports high-level Apple Events, drag-and-drop, multiple
  21. files and multiple views into the files simultaneously.
  22.  
  23.  
  24. ******************
  25. Using SchiperWorks
  26. ******************
  27.  
  28. Selecting a File
  29. ----------------
  30.  
  31. A file can be selected by choosing "Open..." from the File menu, or by
  32. dragging a file onto the SchpiderWorks icon from the Finder.
  33.  
  34. Currently, XCOFF and PEF files are supported, and support for assembler
  35. source files (with a '.s' extension) is under development.
  36.  
  37. When a file is successfully opened, a block list window is opened.
  38.  
  39.  
  40. *********************
  41. SchpiderWorks Windows
  42. *********************
  43.  
  44. Block list window
  45. -----------------
  46.  
  47. The main window for each file is the block list window.  This window
  48. contains the address and name of each major block in the file.  When this
  49. window is closed, the file is closed and all windows associated with that
  50. file are automatically closed.
  51.  
  52. Double-clicking on the name of a block in this window will automatically
  53. bring the front-most code window for this file to the front and scroll to
  54. the beginning of the block that was clicked on.  If there is no current
  55. code window for this file, a new one is opened.  Holding the option key
  56. while double-clicking will force a new code window to be created.
  57.  
  58. Code (disassembly) window
  59. -------------------------
  60.  
  61. A new code window can be created by using the Create "" Code Window menu
  62. item or by double-clicking on a block name in the Block list window.
  63. There can be any number of code windows open for a particular file.
  64.  
  65. Clicking on a label will create a pop-up menu which contains all of the
  66. references to this label, and allows the label symbol to be edited. (***
  67. this is not complete yet ***)
  68.  
  69. A range of instructions can be selected by clicking on the instructions.
  70. This can be used to copy the disassembly text to the clipboard using the
  71. Edit:Copy command.
  72.  
  73. Option-clicking on an instruction will cause other instructions to be
  74. hilighted (displayed in bold) if they are part of the clicked
  75. instruction's data flow.  Thus, instructions before (i.e.: above in the
  76. listing) the clicked instruction will be hilighted if they set or load a
  77. register that the clicked instruction is dependent upon; and instructions
  78. after (i.e.: below) the clicked instruction will be hilighted if they use
  79. a register which is loaded or set by the clicked instruction.
  80.  
  81. Note that this is a fairly mindless operation -- branches are ignored when
  82. determining whether an instruction is before or after the clicked
  83. instruction.  Thus, instructions will be hilighted even if they are part
  84. of a completely different function (and thus obviously not directly part
  85. of the instructions data flow).  Complete data flow analysis would have
  86. been significantly more costly and would have been only slightly more
  87. useful.
  88.  
  89. To help make up for the limited form of "data flow" analysis used, the
  90. control key while clicking to reverse the conditions which determine
  91. whether an instruction should be hilighted.  Thus, when the control key is
  92. held down, the instructions before the clicked instruction will be
  93. hilighted if they _use_ a register which is set by the clicked
  94. instruction; and instructions after the clicked instruction will be
  95. hilighted if they _set_ a register upon which the clicked instruction is
  96. dependent.  This is useful, e.g., when an instruction at the end of a loop
  97. sets a value which is used at the beginning of the loop.
  98.  
  99. Note that the static analysis used to compute the load-use information
  100. does not provide complete information for 3 POWER/PowerPC
  101. instructions. These instructions set a variable number of registers
  102. depending on the current contents of the XER, and thus, which registers
  103. are affected cannot be statically determined. These instructions are:
  104. lscbx (POWER only), lswx, and stswx.
  105.  
  106.  
  107. Data window
  108. -----------
  109.  
  110. A new data window can be created by using the Create "" Data Window menu
  111. item or by option-double-clicking on a block name in the Block list
  112. window.  There can be any number of data windows open for a particular
  113. file.
  114.  
  115. *** data blocks are not currently displayed in the Block list window ***
  116.  
  117.  */
  118.  
  119.